package cn.hotel.utlis;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * @authorDesc 诸神在上，佑我程序，玄功护体，BUG皆去！
 * @author ZhouJl
 * @date 2022-12-27 10:26:09
 * @version 1.0.0
 * @description  数据源（懒汉式单例模式，使用同步关键字解决线程安全问题）
 */
public class DataSourceConfig {
    Properties properties = new Properties();
    //声明自己的对象，但不创建
    private static DataSourceConfig dataSourceConfig = null;
    //私有化构造方法
    private DataSourceConfig(){
        String file = "database.properties";
        InputStream is = DataSourceConfig.class.getClassLoader().getResourceAsStream(file);
        try {
            properties.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 对外返回一个单例对象
     * @return
     */
    public synchronized static DataSourceConfig getInstance(){
        //自己创建自己的对象，如果对象为空则重新创建，不为空则直接返回已创建的对象，以达到系统运行期间只创建一个对象
        if(dataSourceConfig == null){
            dataSourceConfig = new DataSourceConfig();
        }
        return dataSourceConfig;
    }

    /**
     * 根据配置文件中的key获取对应的值
     * @param key
     * @return
     */
    public String getString(String key){
        return properties.getProperty(key);
    }

}